#pragma once

#include "Containers/Any.h"

// class IIsStaticProperty
// {
// 	virtual bool IsStaticProperty() = 0;
// };


class IStaticProperty //: public IIsStaticProperty
{
public:
	virtual ~IStaticProperty() {};

	virtual CAny GetValue() = 0;
	virtual void SetValue(const CAny& InValue) = 0;

	//virtual bool IsStaticProperty() override { return true; }
};

class INonStaticProperty //: public IIsStaticProperty
{
public:
	virtual ~INonStaticProperty() {};

	virtual CAny GetValue(const void * InObjectPtr) = 0;
	virtual void SetValue(void * InObjectPtr,const CAny& InValue) = 0;

	//virtual bool IsStaticProperty() override { return false; }
};
